package com.reactim.user.service;

import com.reactim.user.entity.FriendGroup;

import java.util.List;

/**
 * 好友分组服务接口
 */
public interface FriendGroupService {
    
    /**
     * 创建好友分组
     */
    FriendGroup createGroup(Long userId, String name, String description);
    
    /**
     * 更新好友分组
     */
    FriendGroup updateGroup(Long groupId, Long userId, String name, String description);
    
    /**
     * 删除好友分组
     */
    void deleteGroup(Long groupId, Long userId);
    
    /**
     * 获取用户的所有分组
     */
    List<FriendGroup> getUserGroups(Long userId);
    
    /**
     * 获取或创建默认分组
     */
    FriendGroup getOrCreateDefaultGroup(Long userId);
    
    /**
     * 调整分组排序
     */
    void reorderGroups(Long userId, List<Long> groupIds);
    
    /**
     * 移动好友到分组
     */
    void moveFriendToGroup(Long userId, Long friendId, Long groupId);
    
    /**
     * 批量移动好友到分组
     */
    void moveFriendsToGroup(Long userId, List<Long> friendIds, Long groupId);
    
    /**
     * 获取分组中的好友数量
     */
    long getFriendCountInGroup(Long userId, Long groupId);
}